//快乐数 力扣202
//哈希表 对于具有循环规律的计算结果，可用哈希表存储每一个新的计算结果
//当新结果能在已存储的结果中找到时，说明已经结束一次循环，进入了新的一轮循环
class Solution {
public:
	bool isHappy(int n) {
		unordered_set<long long> a;
		long long sum = 0;
		while(1)
		{
			//计算当前n的平方和
			while(n > 0)
			{
				sum += (n % 10)*(n % 10);
				n /= 10;
			}
			if(sum == 1) return true;
			if(a.find(sum) != a.end()) return false;
			a.insert(sum);
			n = sum;
			sum = 0;
		}
		
	}
};
